#include "chatsalida.h"
#include "BuzonDeMensajes.h"
#include "MensajeChat.h"

ChatSalida :: ChatSalida(){
	mensaje.assign("");
}

ChatSalida :: ~ChatSalida(){
}

void ChatSalida :: update(){
	BuzonDeMensajes* buzon = dynamic_cast<BuzonDeMensajes*>(this->observable);
	if (buzon != 0) {
		MensajeChat* chat = dynamic_cast<MensajeChat*>(buzon->getUltimo());
		if (chat != 0) {
			string msg = chat->getJugador()+"> "+chat->getText();
			this->escribir(msg);
		}
	}
}


void ChatSalida :: escribir(string msg){
	mensaje.append(msg);
	mensaje.append("\n");
	Glib::RefPtr<Gtk::TextBuffer> chatBuffer = Gtk::TextBuffer::create();
	chatBuffer->set_text(mensaje);
	this->set_buffer(chatBuffer);
	Gtk::ScrolledWindow *sc = (Gtk::ScrolledWindow*)this->get_parent();
	double upper = sc->get_vadjustment()->get_upper();
	sc->get_vadjustment()->set_value(upper);
	sc->get_vadjustment()->changed();
}
